#ifndef ISENSOR
#define	ISENSOR

// ***************************************************************************
// CHANGE LOG
//
// ***************************************************************************

// ***************************************************************************
// ***************************************************************************
// Section: Includes
// ***************************************************************************
// ***************************************************************************
#include <p32xxxx.h>
#include <plib.h>
#include <string>

// ***************************************************************************
// ***************************************************************************
// Section: Constants & Data Types
// ***************************************************************************
// ***************************************************************************

/*! \brief The ISensor interface defines common functionality for all sensors.
 */
class ISensor
{
  public:

	virtual ~ISensor() { }
	/*! \brief Reads the sensor.
	 */
	virtual void UpdateValue() = 0;

	/*! \brief Returns last value read from sensor
	 */
	virtual float GetValue() = 0;

	virtual unsigned char GetChannelNumber() = 0;
	virtual unsigned char GetSensorNumber() = 0;
	virtual std::string GetSensorName() = 0;

};

#endif